package com.demo.listener;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @author WuLiangHang
 * 部门1 盖完章要去部门2
 */
@WebServlet(name = "Demo01Servlet", urlPatterns = "/demo01.do")
public class Demo01Servlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("POST");

    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("GET");
        //获取请求参数
        String username = request.getParameter("username");
        System.out.println(username);
        System.out.println("在Servlet1(柜台1)中查看参数");
        //给材料盖一个章 并传递给Servlet2（柜台2）去查看
        /**
         * 域对象：本质 和Map一样 键值对保存数据
         * 主要方法：getAttribute()  setAttribute()
         * JavaWeb 4个域对象，在作用上都相同，不同之处在于 作用域大小
         * 1.最大的ServletContext:作用域 整个web工程
         * 2.HttpSession : 作用域 单次会话
         * 3.HttpRequest：作用域 单次请求
         * 4.最小PageContext : 作用域 单个JSP页面
         */
        request.setAttribute("key1", "柜台1的公章");
        //问路：Servlet2怎么走(柜台2)怎么走
        /**
         * 请求转发的路径 也必须以/开头
         * 请求转发的固定写法，要修改的话 只能修改"/demo02.do"，这个代表请求转发的路径
         */
        request.getRequestDispatcher("/demo02.do").forward(request, response);
        //请求转发，只能访问工程内部的资源路径，不能访问外部
//        request.getRequestDispatcher("https://www.baidu.com").forward(request, response);
    }
}
